﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{
    [DataObject]
    public class GrupoDeImagensBLL
    {
        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Insere(GrupoDeImagens g)
        {
            try
            {
                return GrupoDeImagensDAL.insere(g.Nome, g.Descricao, g.Compartilhado, g.Usuario);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao inserir Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Remove(GrupoDeImagens g)
        {
            try
            {
                return GrupoDeImagensDAL.deleta(g.Codigo);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao remover Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Atualiza(GrupoDeImagens g)
        {
            try
            {
                return GrupoDeImagensDAL.atualiza(g.Codigo, g.Nome, g.Descricao, g.Compartilhado, g.Usuario);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao editar Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, false)]
        public GrupoDeImagens Consulta(int codigo)
        {
            DSMPTUDO.T_GRUPODEIMAGENSDataTable grupoDeImagensDT = GrupoDeImagensDAL.consultaPorCodigo(codigo);
            GrupoDeImagens g = new GrupoDeImagens(codigo);
            g.Nome = grupoDeImagensDT[0].tx_nome;
            g.Descricao = grupoDeImagensDT[0].tx_descricao;
            g.Usuario = grupoDeImagensDT[0].tx_usuario;
            g.Compartilhado = grupoDeImagensDT[0].bo_compartilhado;
            return g;
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public static List<GrupoDeImagens> ConsultaTodos()
        {
            List<GrupoDeImagens> lista = new List<GrupoDeImagens>();
            DSMPTUDO.T_GRUPODEIMAGENSDataTable grupoDeImagensDT = GrupoDeImagensDAL.consultaTodos();
            for (int i = 0; i < grupoDeImagensDT.Count; i++)
            {
                GrupoDeImagens g = new GrupoDeImagens(grupoDeImagensDT[i].nr_codigo);
                g.Nome = grupoDeImagensDT[i].tx_nome;
                g.Descricao = grupoDeImagensDT[i].tx_descricao;
                g.Usuario = grupoDeImagensDT[i].tx_usuario;
                g.Compartilhado = grupoDeImagensDT[i].bo_compartilhado;
                lista.Add(g);
            }
            return lista;

        }


    }
}
